export enum MenuLevel {
  APP = 1,
  MENU,
  PAGE,
  BUTTON,
}
export const MenuState = {
  ON: true,
  OFF: false,
}

export interface MenuItem {
  /**
   * 菜单id
   */
  id: string
  /**
   * 名称
   */
  name: string
  /**
   * 权限 code、路由 name
   */
  code: string
  /**
   * 菜单等级: 1应用 2菜单 3页面 4按钮
   */
  level: MenuLevel
  /**
   * 父菜单id
   */
  pid: string
  /**
   * 路由地址
   */
  path: string
  /**
   * 菜单图标
   */
  icon?: string
  /**
   * 菜单状态
   */
  enabled: boolean
  /**
   * 创建时间
   */
  createTime: string
  /**
   * 更新时间
   */
  updateTime: string
  /**
   * 子路由
   */
  children?: MenuItem[]
}

export interface InsertMenuReq {
  /** 菜单名 */
  name: string
  /** 权限code */
  code: string
  /** 路由地址 */
  path?: string
  /** 菜单图标 */
  icon?: string
  /** 菜单等级: 1应用 2菜单 3页面 4按钮 */
  level: MenuLevel
  /** 父菜单id */
  pid: string
}

export interface ModifyMenuReq {
  /** id */
  id: string
  /** 菜单名 */
  name?: string
  /** 权限code */
  code?: string
  /** 路由地址 */
  path?: string
  /** 菜单图标 */
  icon?: string
  /** 是否禁用 */
  enabled?: boolean
}
